| API Documentation |  |

- MAIN PAGE
- NAMESPACES
- CLASSES

Classes | Typedefs | Enumerations
nkGraphics Namespace Reference

Encompasses all API of component NilkinsGraphics. More...

## Classes
struct | AttributeGenerationInfo
| Holds information for an attribute generation request. More...
struct | AttributeGenerationOutput
| Describes the output of an attribute generation operation. More...
class | AttributeGranularityUtils
| Offers utility to work with the associated enumeration. More...
class | BlendState
| Holds all information about the blend operations to use when rendering. More...
class | BlendStateManager
| Manages the blend states recorded. More...
class | BoundingBox
| A bounding box. Often used to encompass object's bounds in the world. More...
class | Buffer
| A buffer that will reside on the GPU. More...
class | BufferManager
| Manages the buffers recorded. More...
struct | BufferSubResourceDescriptor
| Describes how a buffer should be mapped. More...
class | Camera
| Offers all controls to model a camera. More...
class | CameraManager
| Manages the cameras recorded. More...
class | ClearTargetsPass
| A clear target pass, during which some targets are cleared. More...
class | ComparisonFunctionUtils
| Offers utility to work with the associated enumeration. More...
struct | CompositeDecodeOptions
| Aggregates all decoding options available for composite decoding. More...
class | CompositeEncoder
| Allows to work with all formats supported, automatically. More...
class | Compositor
| A compositor, describing how to compose the rendering pipeline. More...
class | CompositorManager
| Manages the compositors recorded. More...
class | CompositorNode
| A node in the rendering graph described by a Compositor. More...
class | ComputePass
| A compute pass, during which a compute dispatch is launched. More...
class | Configuration
| Configuration for the system's initialization. More...
class | ConstantBuffer
| Describes a constant buffer. More...
class | ContentLoader
| Utility class that allows to load content through their declaration files. More...
class | ContentLoadResult
| Holds information about an attempt of parsing content declaration sources. More...
struct | DecodedBufferData
| Holds data about a decoded buffer. More...
struct | DecodedData
| Holds the result of an Encoder's decoding operation. More...
struct | DecodedEntityData
| Holds data about a decoded entity. More...
struct | DecodedMaterialData
| Holds data about a decoded material. More...
struct | DecodedMeshData
| Holds data about a decoded mesh. More...
struct | DecodedNodeData
| Holds data about a decoded node. More...
struct | DecodedSkeletonData
| Holds data about a decoded skeleton. More...
struct | DecodedTextureData
| Holds data about a decoded texture. More...
class | DefaultRenderStrategy
| The default render strategy used within the component. More...
class | DepthStencilState
| Holds information about a depth and stencil state used for rendering. More...
class | DepthStencilStateManager
| Manages the depth stencil states recorded. More...
class | Entity
| An entity in a render queue. It drives the shader and possible graph position for a set of renderables (SubEntity). More...
class | EntityRenderInfo
| Compiles the render information for an Entity to use within a RenderQueue. More...
class | EntityRenderInfoSlot
| A slot within the render information. More...
class | EntityRenderLodSlot
| A LOD slot to potentially draw, within a group slot. More...
class | FilterUtils
| Offers utility to work with the associated enumeration. More...
class | Frustum
| Defines a frustum. More...
class | GlobalTimer
| A timer, giving timing capabilities. More...
struct | GltfDecodeOptions
| Decoding options for GlTF models. More...
class | GltfEncoder
| Allows to work with the GLTF 2 format. More...
class | GltfEncoderUtils
| Used internally. More...
class | IndexFormatUtils
| Provides utility functions around the INDEX_FORMAT enum. More...
class | InfiniteBitMask
| A utility class providing "infinite" masks, formed by bits, or booleans. More...
class | InfiniteMask
| A more generic version of the InfiniteBitMask. More...
class | InstancingPass
| A pass doing an instanced draw, during which one mesh is drawn X times, in one go. More...
class | LogManager
| Responsible for logging all messages from the component. More...
struct | MacroEntry
| Holds information about a macro entry. More...
class | Manager
| Base class for resource managers. More...
struct | MapRequestDescriptor
| A description of a request to map a resource. More...
struct | MapResult
| Contains all information of the result of a map operation on a resource. More...
class | Mesh
| Holds information about a mesh. Used as a basis to render 3d models. More...
struct | MeshFillOptions
| Describes how a filling operation should behave. More...
class | MeshInputLayout
| Describes the layout of data inside a mesh. More...
struct | MeshInputLayoutAttribute
| Describes an attribute in a mesh layout. More...
class | MeshManager
| Manages the meshes recorded. More...
class | MeshUtils
| Offers capabilities to ease the manipulation of meshes in some contexts. More...
class | MonoMaterialPass
| A pass rendering the scene, using only one shader to render all the meshes enqueued. More...
class | Node
| Represents a node in a scene graph. More...
class | NodeChangeListener
| A base class for a listener for node changes. More...
class | NodeManager
| Manages the nodes recorded. More...
struct | ObjDecodeOptions
| Describes all options available when decoding the obj format. More...
class | ObjEncoder
| Allows to work with the Obj format. More...
struct | PackedMeshData
| Holds mesh low-level data once packed by the MeshUtils. More...
class | Pass
| The base for a pass within a TargetOperations. More...
class | PostProcessPass
| A post processing pass, during which a shader is used to render a quad fitting on the screen. More...
class | PrimitiveTopologyUtils
| Offers utility to work with the associated enumeration. More...
class | Program
| Holds all informations related to GPU programs, and manages their compilation. More...
class | ProgramCompilationResult
| Holds information about a complation result, from a program. More...
class | ProgramManager
| Manages the programs recorded. More...
class | ProgramSourcesHolder
| Holds the sources of a program. More...
class | RasterState
| Holds information about a raster state. More...
class | RasterStateManager
| Manages the raster states available in the component. More...
class | RaytracingPass
| A raytracing pass. Dispatches rays, using hardware acceleration. More...
class | RenderCommand
| Describes a render command and provides the necessary information for it to happen. More...
class | RenderCommandQueue
| A queue of rendering commands. More...
class | RenderContext
| A rendering context, attached to a window or an offscreen texture. More...
class | RenderContextDescriptor
| A descriptor, used when creating a context along with its window. More...
class | RenderContextManager
| Manages the render contexts recorded. More...
class | Renderer
| A renderer, implementing the logic of using a graphics API. More...
struct | RendererSupportInfo
| Informations about the supported features. More...
class | RenderQueue
| A render queue, where all items that have to be rendered are queued. More...
class | RenderQueueManager
| Manages the render queues recorded. More...
class | RenderScenePass
| A pass rendering render queues. More...
class | RenderStrategy
| A render strategy, used by a render queue to prepare the render commands. More...
class | Resource
| Base class for a resource in the component. More...
class | ResourceDeclAugmentCallback
| A callback called whenever a resource is being processed, during a save or load of resource set. More...
struct | ResourceGpuCopyDescriptor
| Holds information about a resource copy happening on the GPU only. More...
class | ResourceManager
| Generic resource manager, enabling more intelligent processing of resources, compared to the ContentLoader. More...
class | ResourceSetLoadQuery
| Holds information about a resource set (project) load query. More...
class | ResourceSetLoadResult
| Holds the result of a loading operation for a resource set. More...
class | ResourceSetSaveQuery
| Holds information about a resource set (project) saving query. More...
class | Sampler
| Holds all the information needed of a sampler used during rendering. More...
class | SamplerManager
| Manages the samplers recorded. More...
class | ScreenshotTaker
| Utility class helping to isolate data from a render context. More...
class | Shader
| A shader class, feeding data to a Program. More...
class | ShaderBoundResourceDesc
| Holds information about a resource linked in a shader for feeding. More...
class | ShaderInstanceCustomDummySlot
| A dummy custom instance slot. More...
class | ShaderInstanceCustomSlot
| A custom slot, implementable by external code. More...
class | ShaderInstanceMemorySlot
| A memory slot for per instance data in a Shader. More...
class | ShaderManager
| Manages the shaders recorded. More...
class | ShaderMemorySlot
| A memory slot in a memory resource. More...
class | ShaderPassCustomDummySlot
| A dummy custom pass slot. More...
class | ShaderPassCustomSlot
| A custom slot, implementable by external code. More...
class | ShaderPassMemorySlot
| A memory slot that fits into a ConstantBuffer. The slot fills entries within the buffer. More...
class | ShaderResource
| Base class for shader resources. Those are resources that can be fed to a Shader. More...
class | StreamOutputDescriptor
| Holds information about a stream output slot. More...
class | StructToString
| Converts enums to string, and vice versa. More...
class | System
| Main interface with the component system. More...
class | TargetDescriptor
| Describes how a target should be addressed during rendering. More...
class | TargetOperations
| Describes a target operation set. More...
class | Texture
| A texture used for rendering, hosted on GPU. More...
class | TextureAddressModeUtils
| Offers utility to work with the associated enumeration. More...
class | TextureManager
| Manages the textures available in the component. More...
class | TextureSaver
| Utility class to save texture contents in files. More...
struct | TextureSubResourceDescriptor
| Describes how a texture should be mapped. More...
class | TextureUtils
| Utility class to retrieve or compute interesting data about textures. More...
struct | UnmapRequestDescriptor
| Description of an unmap request. More...
struct | VertexComposition
| Describes how VertexData should be interpreted when generating low-level mesh data. More...
struct | VertexData
| A high-level mesh data representation. More...
class | Viewport
| Holds all the information needed about a viewport. More...
class | ViewportManager
| Manages the viewports available in the component. More...

## Typedefs
typedef ContentLoadResult< Sampler > | ContentLoadResultSampler
| Load result for samplers.
typedef ContentLoadResult< Texture > | ContentLoadResultTexture
| Load result for texture.
typedef ContentLoadResult< Buffer > | ContentLoadResultBuffer
| Load result for buffers.
typedef ContentLoadResult< ConstantBuffer > | ContentLoadResultConstantBuffer
| Load result for constant buffers.
typedef ContentLoadResult< Shader > | ContentLoadResultShader
| Load result for shaders.
typedef ContentLoadResult< ShaderMemorySlot > | ContentLoadResultShaderMemorySlot
| Load result for memory slots.
typedef ContentLoadResult< Program > | ContentLoadResultProgram
| Load result for programs.
typedef ContentLoadResult< Pass > | ContentLoadResultPass
| Load result for passes.
typedef ContentLoadResult< Compositor > | ContentLoadResultCompositor
| Load result for compositors.
typedef ContentLoadResult< CompositorNode > | ContentLoadResultCompositorNode
| Load result for compositor nodes.
typedef ContentLoadResult< Mesh > | ContentLoadResultMesh
| Load result for meshes.
typedef ContentLoadResult< Node > | ContentLoadResultNode
| Load result for nodes.
typedef ContentLoadResult< BlendState > | ContentLoadResultBlendState
| Load result for blend states.
typedef ContentLoadResult< DepthStencilState > | ContentLoadResultDepthStencilState
| Load result for depth and stencil states.
typedef ContentLoadResult< RasterState > | ContentLoadResultRasterState
| Load result for raster states.
using | ContentLoadResultCamera = ContentLoadResult< Camera >
| Load result for cameras.
using | ContentLoadResultRenderQueue = ContentLoadResult< RenderQueue >
| Load result for render queues.
using | ConstantBufferResourceDesc = ShaderBoundResourceDesc< ConstantBuffer >
| Definition for constant buffers.
using | ShaderResourceDesc = ShaderBoundResourceDesc< ShaderResource >
| Definition for shader resources.
using | UavResourceDesc = ShaderBoundResourceDesc< Buffer >
| Definition for UAV resources.
using | SamplerResourceDesc = ShaderBoundResourceDesc< Sampler >
| Definition for samplers.
typedef InfiniteMask< char > | InfiniteByteMask
| Typedefed char mask.
typedef InfiniteMask< short > | InfiniteShortMask
| Typedefed short mask.
typedef InfiniteMask< int > | InfiniteIntMask
| Typedefed int mask.
typedef InfiniteMask< unsigned long long > | InfiniteInt64Mask
| Typedefed unsigned long long mask.

## Enumerations
enum | BUFFER_BIND_FLAG { BUFFER_BIND_FLAG::BIND_NONE = 0, BUFFER_BIND_FLAG::BIND_VERTEX_BUFFER = 0x1L, BUFFER_BIND_FLAG::BIND_INDEX_BUFFER = 0x2L, BUFFER_BIND_FLAG::BIND_CONSTANT_BUFFER = 0x4L, BUFFER_BIND_FLAG::BIND_SHADER_RESOURCE = 0x8L, BUFFER_BIND_FLAG::BIND_STREAM_OUTPUT = 0x10L, BUFFER_BIND_FLAG::BIND_RENDER_TARGET = 0x20L, BUFFER_BIND_FLAG::BIND_DEPTH_STENCIL = 0x40L, BUFFER_BIND_FLAG::BIND_UNORDERED_ACCESS = 0x80L, BUFFER_BIND_FLAG::BIND_DECODER = 0x200L, BUFFER_BIND_FLAG::BIND_VIDEO_ENCODER = 0x400L }
| Available binding flags for buffers. More...
enum | BUFFER_CPU_ACCESS_FLAG { BUFFER_CPU_ACCESS_FLAG::CPU_ACCESS_NONE = 0, BUFFER_CPU_ACCESS_FLAG::CPU_ACCESS_WRITE = 0x10000L, BUFFER_CPU_ACCESS_FLAG::CPU_ACCESS_READ = 0x20000L, BUFFER_CPU_ACCESS_FLAG::CPU_ACCESS_READ_WRITE = CPU_ACCESS_WRITE | CPU_ACCESS_READ }
| Available cpu access flags. More...
enum | BUFFER_USAGE { BUFFER_USAGE::USAGE_DEFAULT = 0, BUFFER_USAGE::USAGE_IMMUTABLE = 1, BUFFER_USAGE::USAGE_DYNAMIC = 2, BUFFER_USAGE::USAGE_STAGING = 3 }
| Available usage for buffers. Drives the memory used for hosting the data. More...
enum | PROJECTION_TYPE { PROJECTION_TYPE::PERSPECTIVE = 0, PROJECTION_TYPE::ORTHOGRAPHIC }
| Lists all possible projection types for a camera. More...
enum | OBJ_SPACE { OBJ_SPACE::UP_Y_FRONT_Z = 0, OBJ_SPACE::UP_Y_FRONT_MINUS_Z }
| Enumerates all supported spaces the obj data can come from. More...
enum | CONTENT_LOAD_RESULT_STATE { CONTENT_LOAD_RESULT_STATE::SUCCESS = 0, CONTENT_LOAD_RESULT_STATE::PARTIAL, CONTENT_LOAD_RESULT_STATE::FAILURE }
| The available values for a parsing attempt result. More...
enum | ATTRIBUTE_GRANULARITY { ATTRIBUTE_GRANULARITY::PER_VERTEX = 0, ATTRIBUTE_GRANULARITY::PER_INSTANCE = 1 }
| Enumerates all granularity available when feeding attribute data. More...
enum | INDEX_FORMAT { INDEX_FORMAT::UINT8 = 0, INDEX_FORMAT::UINT16, INDEX_FORMAT::UINT32 }
| Enumerates all formats supported for indices in a mesh. More...
enum | PRIMITIVE_TOPOLOGY { PRIMITIVE_TOPOLOGY::PRIMITIVE_TOPOLOGY_UNDEFINED = 0, PRIMITIVE_TOPOLOGY::POINTLIST = 1, PRIMITIVE_TOPOLOGY::LINELIST = 2, PRIMITIVE_TOPOLOGY::LINESTRIP = 3, PRIMITIVE_TOPOLOGY::TRIANGLELIST = 4, PRIMITIVE_TOPOLOGY::TRIANGLESTRIP = 5, PRIMITIVE_TOPOLOGY::LINELIST_ADJ = 10, PRIMITIVE_TOPOLOGY::LINESTRIP_ADJ = 11, PRIMITIVE_TOPOLOGY::TRIANGLELIST_ADJ = 12, PRIMITIVE_TOPOLOGY::TRIANGLESTRIP_ADJ = 13, PRIMITIVE_TOPOLOGY::PATCHLIST_1_CONTROL_POINT = 33, PRIMITIVE_TOPOLOGY::PATCHLIST_2_CONTROL_POINT = 34, PRIMITIVE_TOPOLOGY::PATCHLIST_3_CONTROL_POINT = 35, PRIMITIVE_TOPOLOGY::PATCHLIST_4_CONTROL_POINT = 36, PRIMITIVE_TOPOLOGY::PATCHLIST_5_CONTROL_POINT = 37, PRIMITIVE_TOPOLOGY::PATCHLIST_6_CONTROL_POINT = 38, PRIMITIVE_TOPOLOGY::PATCHLIST_7_CONTROL_POINT = 39, PRIMITIVE_TOPOLOGY::PATCHLIST_8_CONTROL_POINT = 40, PRIMITIVE_TOPOLOGY::PATCHLIST_9_CONTROL_POINT = 41, PRIMITIVE_TOPOLOGY::PATCHLIST_10_CONTROL_POINT = 42, PRIMITIVE_TOPOLOGY::PATCHLIST_11_CONTROL_POINT = 43, PRIMITIVE_TOPOLOGY::PATCHLIST_12_CONTROL_POINT = 44, PRIMITIVE_TOPOLOGY::PATCHLIST_13_CONTROL_POINT = 45, PRIMITIVE_TOPOLOGY::PATCHLIST_14_CONTROL_POINT = 46, PRIMITIVE_TOPOLOGY::PATCHLIST_15_CONTROL_POINT = 47, PRIMITIVE_TOPOLOGY::PATCHLIST_16_CONTROL_POINT = 48, PRIMITIVE_TOPOLOGY::PATCHLIST_17_CONTROL_POINT = 49, PRIMITIVE_TOPOLOGY::PATCHLIST_18_CONTROL_POINT = 50, PRIMITIVE_TOPOLOGY::PATCHLIST_19_CONTROL_POINT = 51, PRIMITIVE_TOPOLOGY::PATCHLIST_20_CONTROL_POINT = 52, PRIMITIVE_TOPOLOGY::PATCHLIST_21_CONTROL_POINT = 53, PRIMITIVE_TOPOLOGY::PATCHLIST_22_CONTROL_POINT = 54, PRIMITIVE_TOPOLOGY::PATCHLIST_23_CONTROL_POINT = 55, PRIMITIVE_TOPOLOGY::PATCHLIST_24_CONTROL_POINT = 56, PRIMITIVE_TOPOLOGY::PATCHLIST_25_CONTROL_POINT = 57, PRIMITIVE_TOPOLOGY::PATCHLIST_26_CONTROL_POINT = 58, PRIMITIVE_TOPOLOGY::PATCHLIST_27_CONTROL_POINT = 59, PRIMITIVE_TOPOLOGY::PATCHLIST_28_CONTROL_POINT = 60, PRIMITIVE_TOPOLOGY::PATCHLIST_29_CONTROL_POINT = 61, PRIMITIVE_TOPOLOGY::PATCHLIST_30_CONTROL_POINT = 62, PRIMITIVE_TOPOLOGY::PATCHLIST_31_CONTROL_POINT = 63, PRIMITIVE_TOPOLOGY::PATCHLIST_32_CONTROL_POINT = 64 }
| Enumerates all primitive topologies supported for meshes. More...
enum | DATA_FILL_TYPE { DATA_FILL_TYPE::COPY = 0, DATA_FILL_TYPE::FORWARD, DATA_FILL_TYPE::REFERENCE }
| Enumerates available data fill types. More...
enum | PASS_TYPE { PASS_TYPE::UNKNOWN = 0, PASS_TYPE::CLEAR_TARGETS, PASS_TYPE::COMPUTE, PASS_TYPE::INSTANCING, PASS_TYPE::MONO_MATERIAL, PASS_TYPE::POST_PROCESS, PASS_TYPE::RENDER_SCENE, PASS_TYPE::RAYTRACING }
| The pass types available in the component. More...
enum | PROGRAM_TYPE : int { PROGRAM_TYPE::UNKNOWN = 0, PROGRAM_TYPE::COMPUTE, PROGRAM_TYPE::GEOMETRY, PROGRAM_TYPE::PIPELINE, PROGRAM_TYPE::RAYTRACING }
| The type of programs available. More...
enum | RENDERING_API { RENDERING_API::AUTOMATIC = 0, RENDERING_API::D3D11, RENDERING_API::D3D12, RENDERING_API::GLES }
| Enumerates supported graphics API. More...
enum | RENDER_COMMAND_TYPE { RENDER_COMMAND_TYPE::UNKNOWN = 0, RENDER_COMMAND_TYPE::CHANGE_SHADER, RENDER_COMMAND_TYPE::CHANGE_MESH, RENDER_COMMAND_TYPE::DRAW, RENDER_COMMAND_TYPE::PREPARE_INSTANCE }
| Lists available commands for a RenderStrategy to provide. More...
enum | RESOURCE_MISC_FLAG { RESOURCE_MISC_FLAG::RESOURCE_MISC_NONE = 0, RESOURCE_MISC_FLAG::RESOURCE_MISC_GENERATE_MIPS = 0x1L, RESOURCE_MISC_FLAG::RESOURCE_MISC_SHARED = 0x2L, RESOURCE_MISC_FLAG::RESOURCE_MISC_TEXTURECUBE = 0x4L, RESOURCE_MISC_FLAG::RESOURCE_MISC_DRAWINDIRECT_ARGS = 0x10L, RESOURCE_MISC_FLAG::RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS = 0x20L, RESOURCE_MISC_FLAG::RESOURCE_MISC_BUFFER_STRUCTURED = 0x40L, RESOURCE_MISC_FLAG::RESOURCE_MISC_RESOURCE_CLAMP = 0x80L, RESOURCE_MISC_FLAG::RESOURCE_MISC_SHARED_KEYEDMUTEX = 0x100L, RESOURCE_MISC_FLAG::RESOURCE_MISC_GDI_COMPATIBLE = 0x200L, RESOURCE_MISC_FLAG::RESOURCE_MISC_SHARED_NTHANDLE = 0x800L, RESOURCE_MISC_FLAG::RESOURCE_MISC_RESTRICTED_CONTENT = 0x1000L, RESOURCE_MISC_FLAG::RESOURCE_MISC_RESTRICT_SHARED_RESOURCE = 0x2000L, RESOURCE_MISC_FLAG::RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVER = 0x4000L, RESOURCE_MISC_FLAG::RESOURCE_MISC_GUARDED = 0x8000L, RESOURCE_MISC_FLAG::RESOURCE_MISC_TILE_POOL = 0x20000L, RESOURCE_MISC_FLAG::RESOURCE_MISC_TILED = 0x40000L, RESOURCE_MISC_FLAG::RESOURCE_MISC_HW_PROTECTED = 0x80000L }
| Available misc flags for resources. More...
enum | RESOURCE_LOAD_STATE { RESOURCE_LOAD_STATE::UNLOADED = 0, RESOURCE_LOAD_STATE::LOADING, RESOURCE_LOAD_STATE::READY_FOR_RENDERING, RESOURCE_LOAD_STATE::LOADED }
| The resource load states possible. More...
enum | RESOURCE_TYPE { RESOURCE_TYPE::UNKNOWN = 0, RESOURCE_TYPE::COMPOSITOR, RESOURCE_TYPE::MESH, RESOURCE_TYPE::BLEND_STATE, RESOURCE_TYPE::DEPTH_STENCIL_STATE, RESOURCE_TYPE::RASTER_STATE, RESOURCE_TYPE::PROGRAM, RESOURCE_TYPE::SHADER, RESOURCE_TYPE::BUFFER, RESOURCE_TYPE::ACCELERATION_STRUCTURE, RESOURCE_TYPE::TEXTURE, RESOURCE_TYPE::SAMPLER, RESOURCE_TYPE::NODE_WRAPPER }
| The type of resources available in the component. More...
enum | COMPARISON_FUNCTION { COMPARISON_FUNCTION::FUNCTION_NEVER = 1, COMPARISON_FUNCTION::FUNCTION_LESS = 2, COMPARISON_FUNCTION::FUNCTION_EQUAL = 3, COMPARISON_FUNCTION::FUNCTION_LESS_EQUAL = 4, COMPARISON_FUNCTION::FUNCTION_GREATER = 5, COMPARISON_FUNCTION::FUNCTION_NOT_EQUAL = 6, COMPARISON_FUNCTION::FUNCTION_GREATER_EQUAL = 7, COMPARISON_FUNCTION::FUNCTION_ALWAYS = 8 }
| Available comparison functions available during sampling (for samplers, and depth stencil states). More...
enum | FILTER { MIN_MAG_MIP_POINT = 0, MIN_MAG_POINT_MIP_LINEAR = 0x1, MIN_POINT_MAG_LINEAR_MIP_POINT = 0x4, MIN_POINT_MAG_MIP_LINEAR = 0x5, MIN_LINEAR_MAG_MIP_POINT = 0x10, MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x11, MIN_MAG_LINEAR_MIP_POINT = 0x14, MIN_MAG_MIP_LINEAR = 0x15, ANISOTROPIC = 0x55, COMPARISON_MIN_MAG_MIP_POINT = 0x80, COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 0x81, COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x84, COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 0x85, COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 0x90, COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x91, COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 0x94, COMPARISON_MIN_MAG_MIP_LINEAR = 0x95, COMPARISON_ANISOTROPIC = 0xd5, MINIMUM_MIN_MAG_MIP_POINT = 0x100, MINIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x101, MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x104, MINIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x105, MINIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x110, MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x111, MINIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x114, MINIMUM_MIN_MAG_MIP_LINEAR = 0x115, MINIMUM_ANISOTROPIC = 0x155, MAXIMUM_MIN_MAG_MIP_POINT = 0x180, MAXIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x181, MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x184, MAXIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x185, MAXIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x190, MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x191, MAXIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x194, MAXIMUM_MIN_MAG_MIP_LINEAR = 0x195, MAXIMUM_ANISOTROPIC = 0x1d5 }
| Available filtering methods a sampler can use, when magnifying or minifying during sampling.
enum | TEXTURE_ADDRESS_MODE { TEXTURE_ADDRESS_MODE::MODE_WRAP = 1, TEXTURE_ADDRESS_MODE::MODE_MIRROR = 2, TEXTURE_ADDRESS_MODE::MODE_CLAMP = 3, TEXTURE_ADDRESS_MODE::MODE_BORDER = 4, TEXTURE_ADDRESS_MODE::MODE_MIRROR_ONCE = 5 }
| Available address mode for the samplers. More...
enum | TEX_TYPE { TEX_TYPE::TEX_2D = 0, TEX_TYPE::TEX_3D, TEX_TYPE::TEX_CUBEMAP }
| The type a texture can be. More...
enum | TEX_RENDER_FLAG { TEX_RENDER_FLAG::NO_RENDER = 0, TEX_RENDER_FLAG::RENDER_TARGET, TEX_RENDER_FLAG::DEPTH_RENDER_TARGET }
| The render flag possible for a texture. More...
enum | FORMAT { UNKNOWN_FORMAT = 0, R32G32B32A32_TYPELESS = 1, R32G32B32A32_FLOAT = 2, R32G32B32A32_UINT = 3, R32G32B32A32_SINT = 4, R32G32B32_TYPELESS = 5, R32G32B32_FLOAT = 6, R32G32B32_UINT = 7, R32G32B32_SINT = 8, R16G16B16A16_TYPELESS = 9, R16G16B16A16_FLOAT = 10, R16G16B16A16_UNORM = 11, R16G16B16A16_UINT = 12, R16G16B16A16_SNORM = 13, R16G16B16A16_SINT = 14, R32G32_TYPELESS = 15, R32G32_FLOAT = 16, R32G32_UINT = 17, R32G32_SINT = 18, R32G8X24_TYPELESS = 19, D32_FLOAT_S8X24_UINT = 20, R32_FLOAT_X8X24_TYPELESS = 21, X32_TYPELESS_G8X24_UINT = 22, R10G10B10A2_TYPELESS = 23, R10G10B10A2_UNORM = 24, R10G10B10A2_UINT = 25, R11G11B10_FLOAT = 26, R8G8B8A8_TYPELESS = 27, R8G8B8A8_UNORM = 28, R8G8B8A8_UNORM_SRGB = 29, R8G8B8A8_UINT = 30, R8G8B8A8_SNORM = 31, R8G8B8A8_SINT = 32, R16G16_TYPELESS = 33, R16G16_FLOAT = 34, R16G16_UNORM = 35, R16G16_UINT = 36, R16G16_SNORM = 37, R16G16_SINT = 38, R32_TYPELESS = 39, D32_FLOAT = 40, R32_FLOAT = 41, R32_UINT = 42, R32_SINT = 43, R24G8_TYPELESS = 44, D24_UNORM_S8_UINT = 45, R24_UNORM_X8_TYPELESS = 46, X24_TYPELESS_G8_UINT = 47, R8G8_TYPELESS = 48, R8G8_UNORM = 49, R8G8_UINT = 50, R8G8_SNORM = 51, R8G8_SINT = 52, R16_TYPELESS = 53, R16_FLOAT = 54, D16_UNORM = 55, R16_UNORM = 56, R16_UINT = 57, R16_SNORM = 58, R16_SINT = 59, R8_TYPELESS = 60, R8_UNORM = 61, R8_UINT = 62, R8_SNORM = 63, R8_SINT = 64, A8_UNORM = 65, R1_UNORM = 66, R9G9B9E5_SHAREDEXP = 67, R8G8_B8G8_UNORM = 68, G8R8_G8B8_UNORM = 69, BC1_TYPELESS = 70, BC1_UNORM = 71, BC1_UNORM_SRGB = 72, BC2_TYPELESS = 73, BC2_UNORM = 74, BC2_UNORM_SRGB = 75, BC3_TYPELESS = 76, BC3_UNORM = 77, BC3_UNORM_SRGB = 78, BC4_TYPELESS = 79, BC4_UNORM = 80, BC4_SNORM = 81, BC5_TYPELESS = 82, BC5_UNORM = 83, BC5_SNORM = 84, B5G6R5_UNORM = 85, B5G5R5A1_UNORM = 86, B8G8R8A8_UNORM = 87, B8G8R8X8_UNORM = 88, FORCE_UINT = 0xffffffffUL }
| Available formats for resources.
enum | MAP { MAP_READ = 1, MAP_WRITE = 2, MAP_READ_WRITE = 3, MAP_WRITE_DISCARD = 4, MAP_WRITE_NO_OVERWRITE = 5 }
| Available mapping request types.
enum | DEPTH_WRITE_MASK { DEPTH_WRITE_MASK_ZERO = 0, DEPTH_WRITE_MASK_ALL = 1 }
| Available depth write masks. More...
enum | STENCIL_OP { STENCIL_OP_KEEP = 1, STENCIL_OP_ZERO = 2, STENCIL_OP_REPLACE = 3, STENCIL_OP_INCR_SAT = 4, STENCIL_OP_DECR_SAT = 5, STENCIL_OP_INVERT = 6, STENCIL_OP_INCR = 7, STENCIL_OP_DECR = 8 }
| Available stencil operations.
enum | DSV_FLAG { DSV_READ_ONLY_DEPTH = 0x1L, DSV_READ_ONLY_STENCIL = 0x2L }
| Available depth and stencil view flags.
enum | DSV_DIMENSION { DSV_DIMENSION_UNKNOWN = 0, DSV_DIMENSION_TEXTURE1D = 1, DSV_DIMENSION_TEXTURE1DARRAY = 2, DSV_DIMENSION_TEXTURE2D = 3, DSV_DIMENSION_TEXTURE2DARRAY = 4, DSV_DIMENSION_TEXTURE2DMS = 5, DSV_DIMENSION_TEXTURE2DMSARRAY = 6 }
| Available depth and stencil view dimensions.
enum | RTV_DIMENSION { RTV_DIMENSION_UNKNOWN = 0, RTV_DIMENSION_BUFFER = 1, RTV_DIMENSION_TEXTURE1D = 2, RTV_DIMENSION_TEXTURE1DARRAY = 3, RTV_DIMENSION_TEXTURE2D = 4, RTV_DIMENSION_TEXTURE2DARRAY = 5, RTV_DIMENSION_TEXTURE2DMS = 6, RTV_DIMENSION_TEXTURE2DMSARRAY = 7, RTV_DIMENSION_TEXTURE3D = 8 }
| Available render target view dimensions.
enum | SRV_DIMENSION { SRV_DIMENSION_UNKNOWN = 0, SRV_DIMENSION_BUFFER = 1, SRV_DIMENSION_TEXTURE1D = 2, SRV_DIMENSION_TEXTURE1DARRAY = 3, SRV_DIMENSION_TEXTURE2D = 4, SRV_DIMENSION_TEXTURE2DARRAY = 5, SRV_DIMENSION_TEXTURE2DMS = 6, SRV_DIMENSION_TEXTURE2DMSARRAY = 7, SRV_DIMENSION_TEXTURE3D = 8, SRV_DIMENSION_TEXTURECUBE = 9, SRV_DIMENSION_TEXTURECUBEARRAY = 10, SRV_DIMENSION_BUFFEREX = 11 }
| Available shader resource views dimensions.
enum | UAV_DIMENSION { UAV_DIMENSION_UNKNOWN = 0, UAV_DIMENSION_BUFFER = 1, UAV_DIMENSION_TEXTURE1D = 2, UAV_DIMENSION_TEXTURE1DARRAY = 3, UAV_DIMENSION_TEXTURE2D = 4, UAV_DIMENSION_TEXTURE2DARRAY = 5, UAV_DIMENSION_TEXTURE3D = 8 }
| Available unordered access views dimensions.
enum | BUFFEREX_SRV_FLAG { BUFFEREX_SRV_FLAG_RAW = 0x1 }
| Available buffer ex shader resource views flags.
enum | BUFFER_UAV_FLAG { BUFFER_UAV_FLAG_RAW = 0x1, BUFFER_UAV_FLAG_APPEND = 0x2, BUFFER_UAV_FLAG_COUNTER = 0x4 }
| Available unordered access views flags.
enum | BLEND { BLEND_ZERO = 1, BLEND_ONE = 2, BLEND_SRC_COLOR = 3, BLEND_INV_SRC_COLOR = 4, BLEND_SRC_ALPHA = 5, BLEND_INV_SRC_ALPHA = 6, BLEND_DEST_ALPHA = 7, BLEND_INV_DEST_ALPHA = 8, BLEND_DEST_COLOR = 9, BLEND_INV_DEST_COLOR = 10, BLEND_SRC_ALPHA_SAT = 11, BLEND_BLEND_FACTOR = 14, BLEND_INV_BLEND_FACTOR = 15, BLEND_SRC1_COLOR = 16, BLEND_INV_SRC1_COLOR = 17, BLEND_SRC1_ALPHA = 18, BLEND_INV_SRC1_ALPHA = 19 }
| Available blending types.
enum | BLEND_OP { BLEND_OP_ADD = 1, BLEND_OP_SUBTRACT = 2, BLEND_OP_REV_SUBTRACT = 3, BLEND_OP_MIN = 4, BLEND_OP_MAX = 5 }
| Available blending operations.
enum | COLOR_WRITE_ENABLE { COLOR_WRITE_ENABLE_RED = 1, COLOR_WRITE_ENABLE_GREEN = 2, COLOR_WRITE_ENABLE_BLUE = 4, COLOR_WRITE_ENABLE_ALPHA = 8, COLOR_WRITE_ENABLE_ALL = (((COLOR_WRITE_ENABLE_RED | COLOR_WRITE_ENABLE_GREEN) | COLOR_WRITE_ENABLE_BLUE) | COLOR_WRITE_ENABLE_ALPHA) }
| Available color write masks.
enum | FILL_MODE { FILL_WIREFRAME = 2, FILL_SOLID = 3 }
| Available filling mode during rasterization.
enum | CULL_MODE { CULL_NONE = 1, CULL_FRONT = 2, CULL_BACK = 3 }
| Available culling modes.
enum | SHADER_TYPE { VERTEX_SHADER = 0, HULL_SHADER, DOMAIN_SHADER, GEOMETRY_SHADER, PIXEL_SHADER, COMPUTE_SHADER, RAYTRACING_SHADER, UNKNOWN_SHADER }
| Available shader types.
enum | SHADER_SEMANTIC { POSITION_0 = 0, POSITION_1, POSITION_2, POSITION_3, POSITION_4, NORMAL_0 = POSITION_0 + 8, NORMAL_1, NORMAL_2, NORMAL_3, NORMAL_4, UV_0 = NORMAL_0 + 8, UV_1, UV_2, UV_3, UV_4, COLOR_0 = UV_0 + 8, COLOR_1, COLOR_2, COLOR_3, COLOR_4, TANGENT_0 = COLOR_0 + 8, TANGENT_1, TANGENT_2, TANGENT_3, TANGENT_4, BINORMAL_0 = TANGENT_0 + 8, BINORMAL_1, BINORMAL_2, BINORMAL_3, BINORMAL_4, SV_VERTEX_ID = BINORMAL_0 + 8, WORLDMAT_0 = SV_VERTEX_ID + 1, WORLDMAT_1, WORLDMAT_2, WORLDMAT_3, WORLDMAT_4, OUTPUT_SEMANTIC_OFFSET = WORLDMAT_0 + 16, MAXIMUM_SEMANTIC_INDEX = OUTPUT_SEMANTIC_OFFSET * 2 }
| Available shader semantics.
enum | SHADER_RESOURCE_SLOT { CONSTANT_BUFFER_0 = 0, CONSTANT_BUFFER_1, CONSTANT_BUFFER_2, CONSTANT_BUFFER_3, CONSTANT_BUFFER_4, CONSTANT_BUFFER_5, CONSTANT_BUFFER_6, CONSTANT_BUFFER_7, CONSTANT_BUFFER_8, CONSTANT_BUFFER_9, CONSTANT_BUFFER_10, CONSTANT_BUFFER_11, CONSTANT_BUFFER_12, CONSTANT_BUFFER_13, CONSTANT_BUFFER_14, CONSTANT_BUFFER_15, CONSTANT_BUFFER_16, CONSTANT_BUFFER_17, CONSTANT_BUFFER_18, SHADER_RESOURCE_0, SHADER_RESOURCE_1, SHADER_RESOURCE_2, SHADER_RESOURCE_3, SHADER_RESOURCE_4, SHADER_RESOURCE_5, SHADER_RESOURCE_6, SHADER_RESOURCE_7, SHADER_RESOURCE_8, SHADER_RESOURCE_9, SHADER_RESOURCE_10, SHADER_RESOURCE_11, SHADER_RESOURCE_12, SHADER_RESOURCE_13, SHADER_RESOURCE_14, SHADER_RESOURCE_15, SHADER_RESOURCE_16, SHADER_RESOURCE_17, SHADER_RESOURCE_18, UAV_RESOURCE_0, UAV_RESOURCE_1, UAV_RESOURCE_2, UAV_RESOURCE_3, UAV_RESOURCE_4, UAV_RESOURCE_5, UAV_RESOURCE_6, UAV_RESOURCE_7, UAV_RESOURCE_8, UAV_RESOURCE_9, UAV_RESOURCE_10, UAV_RESOURCE_11, UAV_RESOURCE_12, UAV_RESOURCE_13, UAV_RESOURCE_14, UAV_RESOURCE_15, UAV_RESOURCE_16, UAV_RESOURCE_17, UAV_RESOURCE_18, SAMPLER_0, SAMPLER_1, SAMPLER_2, SAMPLER_3, SAMPLER_4, SAMPLER_5, SAMPLER_6 }
| Available resources slots.
enum | PROGRAM_COMPILATION_PROFILE { PROFILE_UNKNOWN = 0, PROFILE_SM_5_0, PROFILE_SM_5_1, PROFILE_SM_6_0 }
| Available program compilation profiles.

## Detailed Description

Encompasses all API of component NilkinsGraphics.

This component abstracts the system's graphics API. It currently support different renderers :

- DirectX 11
- DirectX 12
- OpenGL 3 (compatible with WebGL transpilation) It also supports latest technologies such as DXR for real time raytracing effect creation.

A good start would be to check the nkGraphics::System for initialization. Then, by taking a look at nkGraphics::RenderQueue and nkGraphics::Mesh, quickly get something on screen. Finally, open new possibilities using nkGraphics::Shader and nkGraphics::Compositor to alter the rendering and its composition.

For more guided information, best starting point would be the dedicated tutorials.

## Enumeration Type Documentation

## ◆ BUFFER_BIND_FLAG

enum nkGraphics::BUFFER_BIND_FLAG
| strong

Available binding flags for buffers.

Enumerator
BIND_NONE | Not supposed to be bound.
BIND_VERTEX_BUFFER | Can be bound as a vertex buffer.
BIND_INDEX_BUFFER | Can be bound as an index buffer.
BIND_CONSTANT_BUFFER | Can be bound as a constant buffer.
BIND_SHADER_RESOURCE | Can be bound as a shader resource.
BIND_STREAM_OUTPUT | Can be bound as an output stream.
BIND_RENDER_TARGET | Can be bound as a render target.
BIND_DEPTH_STENCIL | Can be bound as a depth stencil target.
BIND_UNORDERED_ACCESS | Can be bound as an UAV.
BIND_DECODER | Can be bound for decoding.
BIND_VIDEO_ENCODER | Can be bound for video encoding.

## ◆ BUFFER_CPU_ACCESS_FLAG

enum nkGraphics::BUFFER_CPU_ACCESS_FLAG
| strong

Available cpu access flags.

Enumerator
CPU_ACCESS_NONE | CPU won't need to be able to access the resource.
CPU_ACCESS_WRITE | CPU will need write access to the resource.
CPU_ACCESS_READ | CPU will need read access to the resource.
CPU_ACCESS_READ_WRITE | CPU will need both read and write access to the resource.

## ◆ BUFFER_USAGE

enum nkGraphics::BUFFER_USAGE
| strong

Available usage for buffers. Drives the memory used for hosting the data.

Enumerator
USAGE_DEFAULT | Default usage. Will be hosted on GPU, most likely.
USAGE_IMMUTABLE | Immutable. Needs starting resources, will be hosted on GPU, most likely.
USAGE_DYNAMIC | Dynamic. Meant to be updated often (per frame), will be hosted on CPU, most likely.
USAGE_STAGING | Staging. Meant to be read from CPU. Will be hosted on CPU, most likely.

## ◆ PROJECTION_TYPE

enum nkGraphics::PROJECTION_TYPE
| strong

Lists all possible projection types for a camera.

Enumerator
PERSPECTIVE | Perspective projection type.
ORTHOGRAPHIC | Orthographic projection type.

## ◆ OBJ_SPACE

enum nkGraphics::OBJ_SPACE
| strong

Enumerates all supported spaces the obj data can come from.

Enumerator
UP_Y_FRONT_Z | Y is up, Z is front. This is the original space, which won't transform anything.
UP_Y_FRONT_MINUS_Z | Y is up, -Z is front. This will negate the z coordinate coming from the data.

## ◆ CONTENT_LOAD_RESULT_STATE

enum nkGraphics::CONTENT_LOAD_RESULT_STATE
| strong

The available values for a parsing attempt result.

Enumerator
SUCCESS | Fully successful parsing.
PARTIAL | Partial, there were successful declaration loading alongside failures.
FAILURE | Fully failed parsing.

## ◆ ATTRIBUTE_GRANULARITY

enum nkGraphics::ATTRIBUTE_GRANULARITY
| strong

Enumerates all granularity available when feeding attribute data.

Enumerator
PER_VERTEX | Data is fed per vertex drawn in one instance.
PER_INSTANCE | Data is fed per instance drawn.

## ◆ INDEX_FORMAT

enum nkGraphics::INDEX_FORMAT
| strong

Enumerates all formats supported for indices in a mesh.

Enumerator
UINT8 | Unsigned byte.
UINT16 | Unsigned short.
UINT32 | Unsigned integer.

## ◆ PRIMITIVE_TOPOLOGY

enum nkGraphics::PRIMITIVE_TOPOLOGY
| strong

Enumerates all primitive topologies supported for meshes.

To get a good basic understanding, this link can be consulted.

Enumerator
PRIMITIVE_TOPOLOGY_UNDEFINED | Unknown placeholder.
POINTLIST | Point list.
LINELIST | Line list.
LINESTRIP | Line strip.
TRIANGLELIST | Triangle list.
TRIANGLESTRIP | Triangle strip.
LINELIST_ADJ | Line list adjacency.
LINESTRIP_ADJ | Line strip adjacency.
TRIANGLELIST_ADJ | Triangle list adjacency.
TRIANGLESTRIP_ADJ | Triangle strip adjacency.
PATCHLIST_1_CONTROL_POINT | Patchlist.
PATCHLIST_2_CONTROL_POINT | Patchlist.
PATCHLIST_3_CONTROL_POINT | Patchlist.
PATCHLIST_4_CONTROL_POINT | Patchlist.
PATCHLIST_5_CONTROL_POINT | Patchlist.
PATCHLIST_6_CONTROL_POINT | Patchlist.
PATCHLIST_7_CONTROL_POINT | Patchlist.
PATCHLIST_8_CONTROL_POINT | Patchlist.
PATCHLIST_9_CONTROL_POINT | Patchlist.
PATCHLIST_10_CONTROL_POINT | Patchlist.
PATCHLIST_11_CONTROL_POINT | Patchlist.
PATCHLIST_12_CONTROL_POINT | Patchlist.
PATCHLIST_13_CONTROL_POINT | Patchlist.
PATCHLIST_14_CONTROL_POINT | Patchlist.
PATCHLIST_15_CONTROL_POINT | Patchlist.
PATCHLIST_16_CONTROL_POINT | Patchlist.
PATCHLIST_17_CONTROL_POINT | Patchlist.
PATCHLIST_18_CONTROL_POINT | Patchlist.
PATCHLIST_19_CONTROL_POINT | Patchlist.
PATCHLIST_20_CONTROL_POINT | Patchlist.
PATCHLIST_21_CONTROL_POINT | Patchlist.
PATCHLIST_22_CONTROL_POINT | Patchlist.
PATCHLIST_23_CONTROL_POINT | Patchlist.
PATCHLIST_24_CONTROL_POINT | Patchlist.
PATCHLIST_25_CONTROL_POINT | Patchlist.
PATCHLIST_26_CONTROL_POINT | Patchlist.
PATCHLIST_27_CONTROL_POINT | Patchlist.
PATCHLIST_28_CONTROL_POINT | Patchlist.
PATCHLIST_29_CONTROL_POINT | Patchlist.
PATCHLIST_30_CONTROL_POINT | Patchlist.
PATCHLIST_31_CONTROL_POINT | Patchlist.
PATCHLIST_32_CONTROL_POINT | Patchlist.

## ◆ DATA_FILL_TYPE

enum nkGraphics::DATA_FILL_TYPE
| strong

Enumerates available data fill types.

Enumerator
COPY | Data will be copied from the input data, to the output vertex buffers.
FORWARD | Data will be forwarded from the input data to the output vertex buffers. Input will be altered and invalidated in the process.
REFERENCE | Data will be referenced by the vertex buffers. This means the input data has to remain alive while the mesh is loading.

## ◆ PASS_TYPE

enum nkGraphics::PASS_TYPE
| strong

The pass types available in the component.

Enumerator
UNKNOWN | Unknown place holder.
CLEAR_TARGETS | Clear targets pass.
COMPUTE | Compute pass.
INSTANCING | Instancing pass.
MONO_MATERIAL | Mono material pass.
POST_PROCESS | Post processing pass.
RENDER_SCENE | Render scene pass.
RAYTRACING | Raytracing pass.

## ◆ PROGRAM_TYPE

enum nkGraphics::PROGRAM_TYPE : int
| strong

The type of programs available.

Enumerator
UNKNOWN | Unknown placeholder.
COMPUTE | A compute program.
GEOMETRY | A geometry stream program.
PIPELINE | A pipeline program.
RAYTRACING | A raytracing program.

## ◆ RENDERING_API

enum nkGraphics::RENDERING_API
| strong

Enumerates supported graphics API.

Used in configurations to select which API to use.

Enumerator
AUTOMATIC | Automatic. The system is left with choosing the API.
D3D11 | DirectX 11.
D3D12 | DirectX 12.
GLES | OpenGL ES 3 compatible.

## ◆ RENDER_COMMAND_TYPE

enum nkGraphics::RENDER_COMMAND_TYPE
| strong

Lists available commands for a RenderStrategy to provide.

Enumerator
UNKNOWN | Unknown command.
CHANGE_SHADER | Changes the active shader for current state.
CHANGE_MESH | Changes the active mesh for current state.
DRAW | Triggers a draw for set state.
PREPARE_INSTANCE | Prepares an instance, using the InstanceShaderMemorySlot description for active shader.

## ◆ RESOURCE_MISC_FLAG

enum nkGraphics::RESOURCE_MISC_FLAG
| strong

Available misc flags for resources.

Enumerator
RESOURCE_MISC_NONE | No flag.
RESOURCE_MISC_GENERATE_MIPS | Marked for automatic mip generation.
RESOURCE_MISC_SHARED | Marked as shared between multiple devices.
RESOURCE_MISC_TEXTURECUBE | Marked as a cube texture.
RESOURCE_MISC_DRAWINDIRECT_ARGS | Marked as allowing instancing of GPU generated content.
RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS | Marked as a byte address buffer (addressed through a byte offset).
RESOURCE_MISC_BUFFER_STRUCTURED | Marked as a structured buffer (containing a structure addressed through its index).
RESOURCE_MISC_RESOURCE_CLAMP | Marked as enabling clamping of mips levels.
RESOURCE_MISC_SHARED_KEYEDMUTEX | Marked as enabling synchronization through mutex acquisition.
RESOURCE_MISC_GDI_COMPATIBLE | Marks the resource as compatible with GDI (for DirectX renderers).
RESOURCE_MISC_SHARED_NTHANDLE | Marks as using NT handle for sharing (for DirectX renderers).
RESOURCE_MISC_RESTRICTED_CONTENT | Marks resource as needing protection.
RESOURCE_MISC_RESTRICT_SHARED_RESOURCE | Marks a shared resource as needing protection.
RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVER | Marks the resource as needing restriction from the driver.
RESOURCE_MISC_GUARDED | Marks as guarded, restricting write operations to a region of interest (for DirectX renderers).
RESOURCE_MISC_TILE_POOL | Marks as a tile pool.
RESOURCE_MISC_TILED | Marks as a tiled resource.
RESOURCE_MISC_HW_PROTECTED | Marks as hardware protected.

## ◆ RESOURCE_LOAD_STATE

enum nkGraphics::RESOURCE_LOAD_STATE
| strong

The resource load states possible.

Enumerator
UNLOADED | Resource is unloaded and awaiting configuration.
LOADING | Resource is loading.
READY_FOR_RENDERING | Resource is still loading, but ready to be used in some contexts. This can be the case for textures auto generating mips for instance.
LOADED | Resource is fully loaded and ready for usage.

## ◆ RESOURCE_TYPE

enum nkGraphics::RESOURCE_TYPE
| strong

The type of resources available in the component.

Enumerator
UNKNOWN | Unknown place holder.
COMPOSITOR | A compositor.
MESH | A mesh.
BLEND_STATE | A blend state.
DEPTH_STENCIL_STATE | A depth and stencil state.
RASTER_STATE | A raster state.
PROGRAM | A program.
SHADER | A shader.
BUFFER | A buffer.
ACCELERATION_STRUCTURE | An acceleration structure.
TEXTURE | A texture.
SAMPLER | A sampler.
NODE_WRAPPER | A Node wrapper. Used internally.

## ◆ COMPARISON_FUNCTION

enum nkGraphics::COMPARISON_FUNCTION
| strong

Available comparison functions available during sampling (for samplers, and depth stencil states).

Enumerator
FUNCTION_NEVER | The function never passes.
FUNCTION_LESS | Function < (less than).
FUNCTION_EQUAL | Function == (equal).
FUNCTION_LESS_EQUAL | Function <= (less then or equal).
FUNCTION_GREATER | Function > (greater than).
FUNCTION_NOT_EQUAL | Function != (not equal).
FUNCTION_GREATER_EQUAL | Function >= (geather than or equal).
FUNCTION_ALWAYS | The function always passes.

## ◆ TEXTURE_ADDRESS_MODE

enum nkGraphics::TEXTURE_ADDRESS_MODE
| strong

Available address mode for the samplers.

Enumerator
MODE_WRAP | Wraps the coordinates, repeating them when outside of [0, 1].
MODE_MIRROR | Mirrors the coordinates, repeating them backwards from their last iteration when outside of [0, 1].
MODE_CLAMP | Clamps the coordinates, forcing them to 0 if negative, and to 1 if bigger.
MODE_BORDER | Uses the border color for any value outside of [0, 1].
MODE_MIRROR_ONCE | Uses the mirror behaviour, but only once.

## ◆ TEX_TYPE

enum nkGraphics::TEX_TYPE
| strong

The type a texture can be.

Enumerator
TEX_2D | A 2D texture.
TEX_3D | A 3D texture.
TEX_CUBEMAP | A cubemap.

## ◆ TEX_RENDER_FLAG

enum nkGraphics::TEX_RENDER_FLAG
| strong

The render flag possible for a texture.

Enumerator
NO_RENDER | Not used as a target.
RENDER_TARGET | Used as a color target rendering.
DEPTH_RENDER_TARGET | Used as a depth target rendering.

## ◆ DEPTH_WRITE_MASK

enum nkGraphics::DEPTH_WRITE_MASK

Available depth write masks.

Enumerator
DEPTH_WRITE_MASK_ZERO | Turns off depth writes.
DEPTH_WRITE_MASK_ALL | Turns on depth writes.